Windowsパソコンを買えばMS-IMEが標準だが、私は、それより優れたGoogle日本語入力というソフトを無料でダウンロードして使っている。
キー設定の選択
その設定法を書くに当たって、ちゃんとしたマニュアルを探したけど、Googleにも、その他ネット上でも見つける事は出来なかった。そこで、実際にGoogle日本語入力の設定をして見て、どのようになっているのかを調べた。Google日本語入力をインストールしてタスクバーの中にあるIMEのアイコンを右クリックしてプロパティを選択し、キー設定の選択 の 編集 をクリックすると 「モード」、「入力キー」、「コマンド」の3つをセットにする行のリストが出てくる。
この内、「モード」と「コマンド」はリストの中から選択し、「入力キー」は実際に使うキーを押す事で入力する。例えば、リスト中の「Ctrl Backspace」は実際にCtrlキーを押しながらBackspaceキーを押すことで入力される。そうやって編集する方法の他に、予め設定ファイルを作っておいて それをインポートすることでキー設定をカスタマイズする方法がある。
設定ファイルの作成は、まずデフォルトの設定をエクスポートすることから始める。デフォルトはMS-IME準拠、ATOK準拠、ことえり準拠、の3種類の中から選ぶ事が出来るが、私はMS-IME準拠の設定を元にした。Google日本語入力の前はMS-IMEを使っていたし、Windowsパソコンを使う日本人の殆どはMS-IMEを使っているはずで、それに慣れておくことも大事だ。因みに、ことえり はAppleのパソコンのIMEである。
設定ファイルのゴミ
MS-IMEの設定をエクスポートすると keymap.txt という名前のファイルが出来るけど、ファイル名はエクスポート前に変更する事も出来る。そのファイルとキー設定の編集画面を見較べると、1行目にタイトル行が入って、2行目以降はファイルの行と編集画面の行が一対一に対応していることが分かった。
一つの行の3つの要素はTabで仕切られている。このような形式のファイルは Tab Separated Values (TSV)呼ばれ表計算ソフトのデータ入出力形式の一つである。見やすいようにGoogleスプレッドシートに取り入れたものの一部を例として以下に示す。
途中省略
編集画面ではこの Shift Enter の行が最後なのだが、MS-IMEの設定ファイルにはこの後に謎の設定が13行も続いている。色々調べたら、これはゴミのようだ。消去しても全く問題ない。
それは、設定ファイルの1行目(status key command)を消去し、5行目の Ctrl d の部分を hogehoge に書き換えてインポートし、再度エクスポートしてみて分かった。すると、
一つの行の3つの要素はTabで仕切られている。このような形式のファイルは Tab Separated Values (TSV)呼ばれ表計算ソフトのデータ入出力形式の一つである。見やすいようにGoogleスプレッドシートに取り入れたものの一部を例として以下に示す。
status | key | command |
Composition | Backspace | Backspace |
Composition | Ctrl a | MoveCursorToBeginning |
Composition | Ctrl Backspace | Backspace |
Composition | Ctrl d | MoveCursorRight |
Composition | Ctrl Down | MoveCursorToEnd |
Composition | Ctrl e | MoveCursorToBeginning |
Precomposition | Muhenkan | InputModeSwitchKanaType |
Precomposition | Shift Muhenkan | ToggleAlphanumericMode |
Precomposition | Shift Space | InsertAlternateSpace |
Precomposition | Space | InsertSpace |
Prediction | Ctrl Delete | DeleteSelectedCandidate |
Suggestion | Down | PredictAndConvert |
Suggestion | Shift Enter | CommitFirstSuggestion |
編集画面ではこの Shift Enter の行が最後なのだが、MS-IMEの設定ファイルにはこの後に謎の設定が13行も続いている。色々調べたら、これはゴミのようだ。消去しても全く問題ない。
それは、設定ファイルの1行目(status key command)を消去し、5行目の Ctrl d の部分を hogehoge に書き換えてインポートし、再度エクスポートしてみて分かった。すると、
- 編集画面の1行目は Backspace ではなく Ctrl a の行になっている。
- hogehoge 行が無くなっている。
- 1行目には再度タイトル行が出現する。
- 2行目は Ctrl aの行になる。
- hogehoge の行は有効な設定の最後の行の次に出現し、その後にゴミの行が続く。
- インポート: 設定ファイルの1行目は破棄される。2行目以降は正しい設定行は設定に吸い込まれ、正しくない設定行は取り残される。
- エクスポート: インポート時に取り残されたデータの先頭にタイトル行が追加され、それに続き現在の設定が追加されることでエクスポート用のファイルが生成される。
モードの選択肢
編集画面ではモードは日本語のリストの中から選択するが、設定ファイルでは英語になっている。その対応を調べて表にした。
No. | モード名 | status |
い | 変換前入力中 | Composition |
ろ | 変換中 | Conversion |
は | 直接入力 | DirectInput |
に | 入力文字なし | Precomposition |
ほ | サジェスト選択中 | Prediction |
へ | サジェスト表示中 | Suggestion |
コマンドの選択肢
No. | コマンド名 | command | い | ろ | は | に | ほ | へ | |
1 | IMEを有効化 | IMEOn | 0 | 0 | 5 | 0 | 0 | 0 | |
2 | IMEを無効化 | IMEOff | 1 | 1 | 0 | 1 | 0 | 0 | |
3 | ひらがなに入力切替 | InputModeHiragana | 1 | 1 | 0 | 1 | 0 | 0 | |
4 | ひらがなに変換 | ConvertToHiragana | 2 | 2 | 0 | 0 | 0 | 0 | |
5 | ひらがなに表示切替 | DisplayAsHiragana | 0 | 0 | 0 | 0 | 0 | 0 | 未 |
6 | ひらがなカタカナを切替 | SwitchKanaType | 1 | 1 | 0 | 0 | 0 | 0 | |
7 | カーソルを右に移動 | MoveCursorRight | 4 | 0 | 0 | 0 | 0 | 0 | |
8 | カーソルを右端に移動 | MoveCursorToEnd | 7 | 0 | 0 | 0 | 0 | 0 | |
9 | カーソルを左に移動 | MoveCursorLeft | 4 | 0 | 0 | 0 | 0 | 0 | |
10 | カーソルを左端に移動 | MoveCursorToBeginning | 5 | 0 | 0 | 0 | 0 | 0 | |
11 | キャンセル | Cancel | 3 | 9 | 0 | 0 | 0 | 0 | |
12 | キャンセル後 IMEを無効化 | CancelAndIMEOff | 0 | 0 | 0 | 0 | 0 | 0 | 未 |
13 | プロパティを起動 | LaunchConfigDialog | 0 | 0 | 0 | 0 | 0 | 0 | 未 |
14 | 予測変換 | PredictAndConvert | 1 | 1 | 0 | 0 | 0 | 1 | |
15 | 代替空白文字を入力 | InsertAlternateSpace | 0 | 0 | 0 | 1 | 0 | 0 | |
16 | 全角カタカナに入力切替 | InputModeFullKatakana | 1 | 1 | 0 | 1 | 0 | 0 | |
17 | 全角カタカナに変換 | ConvertToFullKatakana | 2 | 2 | 0 | 0 | 0 | 0 | |
18 | 全角カタカナに表示切替 | DisplayAsFullKatakana | 0 | 0 | 0 | 0 | 0 | 0 | 未 |
19 | 全角空白を入力 | InsertFullSpace | 1 | 1 | 0 | 1 | 0 | 0 | |
20 | 全角英数に入力切替 | InputModeFullAlphanumeric | 0 | 0 | 0 | 0 | 0 | 0 | 未 |
21 | 全角英数に変換 | ConvertToFullAlphanumeric | 3 | 3 | 0 | 0 | 0 | 0 | |
22 | 全角英数に表示切替 | DisplayAsFullAlphanumeric | 0 | 0 | 0 | 0 | 0 | 0 | 未 |
23 | 再変換 | Reconvert | 0 | 0 | 1 | 1 | 0 | 0 | |
24 | 前候補を選択 | ConvertPrev | 0 | 6 | 0 | 0 | 0 | 0 | |
25 | 前候補ページを選択 | ConvertPrevPage | 0 | 2 | 0 | 0 | 0 | 0 | |
26 | 半角に変換 | ConvertToHalfWidth | 2 | 2 | 0 | 0 | 0 | 0 | |
27 | 半角に表示切替 | DisplayAsHalfWidth | 0 | 0 | 0 | 0 | 0 | 0 | 未 |
28 | 半角カタカナに入力切替 | InputModeHalfKatakana | 0 | 0 | 0 | 0 | 0 | 0 | 未 |
29 | 半角カタカナに変換 | ConvertToHalfKatakana | 0 | 0 | 0 | 0 | 0 | 0 | 未 |
30 | 半角カタカナに表示切替 | DisplayAsHalfKatakana | 0 | 0 | 0 | 0 | 0 | 0 | 未 |
31 | 半角空白を入力 | InsertHalfSpace | 1 | 1 | 0 | 0 | 0 | 0 | |
32 | 半角英数に入力切替 | InputModeHalfAlphanumeric | 0 | 0 | 0 | 0 | 0 | 0 | 未 |
33 | 半角英数に変換 | ConvertToHalfAlphanumeric | 2 | 2 | 0 | 0 | 0 | 0 | |
34 | 半角英数に表示切替 | DisplayAsHalfAlphanumeric | 0 | 0 | 0 | 0 | 0 | 0 | 未 |
35 | 単語登録を起動 | LaunchWordRegisterDialog | 0 | 0 | 0 | 0 | 0 | 0 | 未 |
36 | 右の文字を削除 | Delete | 2 | 0 | 0 | 0 | 0 | 0 | |
37 | 変換 | Convert | 3 | 0 | 0 | 0 | 0 | 0 | |
38 | 学習を使わずに変換 | ConvertWithoutHistory | 1 | 0 | 0 | 0 | 0 | 0 | |
39 | 左の文字を削除 | Backspace | 4 | 0 | 0 | 0 | 0 | 0 | |
40 | 文節を伸ばす | SegmentWidthExpand | 0 | 2 | 0 | 0 | 0 | 0 | |
41 | 文節を右に移動 | SegmentFocusRight | 0 | 2 | 0 | 0 | 0 | 0 | |
42 | 文節を右端に移動 | SegmentFocusLast | 0 | 3 | 0 | 0 | 0 | 0 | |
43 | 文節を左に移動 | SegmentFocusLeft | 0 | 2 | 0 | 0 | 0 | 0 | |
44 | 文節を左端に移動 | SegmentFocusFirst | 0 | 3 | 0 | 0 | 0 | 0 | |
45 | 文節を縮める | SegmentWidthShrink | 0 | 2 | 0 | 0 | 0 | 0 | |
46 | 最初の予測候補を確定 | CommitFirstSuggestion | 0 | 0 | 0 | 0 | 0 | 1 | |
47 | 最初の文節のみを確定 | CommitOnlyFirstSegment | 0 | 2 | 0 | 0 | 0 | 0 | |
48 | 最後の学習をキャンセル | Revert | 0 | 0 | 0 | 1 | 0 | 0 | |
49 | 次のカナ文字種に入力切替 | InputModeSwitchKanaType | 0 | 0 | 0 | 1 | 0 | 0 | |
50 | 次候補を選択 | ConvertNext | 0 | 4 | 0 | 0 | 0 | 0 | |
51 | 次候補ページを選択 | ConvertNextPage | 0 | 2 | 0 | 0 | 0 | 0 | |
52 | 確定 | Commit | 3 | 3 | 0 | 0 | 0 | 0 | |
53 | 確定取り消し | Undo | 0 | 0 | 0 | 1 | 0 | 0 | |
54 | 空白を入力 | InsertSpace | 0 | 0 | 0 | 1 | 0 | 0 | |
55 | 英数入力切り替え | ToggleAlphanumericMode | 1 | 1 | 0 | 2 | 0 | 0 | |
56 | 辞書ツールを起動 | LaunchDictionaryTool | 0 | 0 | 0 | 0 | 0 | 0 | 未 |
57 | 選択候補を履歴から削除 | DeleteSelectedCandidate | 0 | 0 | 0 | 0 | 1 | 0 |
この使われている個数が2以上の場合は、同じコマンドに異なるキーが割り当てられている事を示している。例えば、No.1 IMEOn は、状態「は」即ち直接入力の時には5通りの方法があり、Eisu、F13、Hankaku/Zenkaku、Hiragana、Katakana、となっている。F13が定義されているとは思わなかった。
因みに、このコマンドの内、No.54 InsertSpace は、英数入力では半角空白、かな入力では全角空白、が入力され、No.15 InsertAlternateSpace は、逆に英数入力では全角空白、かな入力では半角空白、が入力される。
ローマ字変換テーブル
Google日本語入力のプロパティのローマ字テーブル の 編集 をクリックすると 「入力」、「出力」、「次の入力」の3つをセットにする行のリストが出てくる。これを直接編集することも出来るが、キー設定と同様に設定ファイルのエクスポートとインポートにより、外部のエディターで編集することも出来る。
キー設定の選択とは異なり、ローマ字テーブルは1種類しか無い。これをエクスポートすると romantable.txt という名前のファイルが出来るけど、ファイル名はエクスポート前に変更可能。ファイル形式は keymap.txt と同様にTSVである。
キー設定の選択とは異なり、ローマ字テーブルは1種類しか無い。これをエクスポートすると romantable.txt という名前のファイルが出来るけど、ファイル名はエクスポート前に変更可能。ファイル形式は keymap.txt と同様にTSVである。
ローマ字変換テーブルは、入力に対する出力だけでなく、次の入力という項目を設ける事で、「変換結果が表示されるが、しかしそれは未確定である」という状態を作って、複雑な動作をさせる事が出来る。
例えば、n y a と入力した場合に、「ん」→「にぃ」→「にゃ」と表示を変化させていくことが可能になる。その為のローマ字変換テーブルは以下の通り。
n | ん | |
んy | にぃ | |
にぃa | にゃ |
このテーブルの左の列は入力、真ん中の列は出力、右側の列は次の入力になる。この例では、「にゃ」で文字が確定する。
しかし、もっと複雑なテーブルになると文字が確定しないまま入力が増えていき、その間に確定する文字があってもそれ以前に未確定の文字は依然として未確定のままらしい。これは、期待通りの結果が得られなかった時に実験的な変換テーブルを作って確かめた。
その詳細は、[Google日本語入力の動作]という投稿に書いた。未確定のままの文字があったので、最後に入れた文字により複数の文字定義に該当する事と なり、期待していた文字定義とは異なる より長い文字定義 の方に変換されたのが原因だと分かった。
Google日本語変換のバグ
「Google日本語入力ローマ字テーブル設定」 に於いて、「初期値に戻す」 を選択して適用させても即座に適用されない。(カスタマイズしたファイルなら即座に適用される。) Windowsを再起動すると適用される。
面白い事に、初期値の状態でエクスポートしてあったファイルをインポートした場合でも即座に適用されず、Windowsの再起動が必要。
この初期値のファイルをエディットしてコメント行を追加しても結果は変わらないが、定義の一部を削除して実質的に変更した後のファイルは即座に適用された。